package com.wlsk.license.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * @description: 运次信息请求参数
 * @author: 钟金凤
 * cl_plate_line 返回对象
 * @date: 2025/8/27
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("运次信息提交")
public class PlateLineDto extends BaseUserReqDto {
    /**
     * 线路id
     */
    @ApiModelProperty(value = "线路id。")
    private Integer lineId;

    /**
     * 用车人
     */
    @ApiModelProperty(value = "用车人或单位不能为空。")
    @NotNull(message = "用车人或单位不能为空")
    private String company;

    /**
     * : 乘客人数
     */
    @ApiModelProperty(value = "乘客人数不能为空。")
    @NotNull(message = "乘客人数不能为空")
    private Integer perno;
    /**
     * 使用期限（起） YYYY-MM-DD hh:mm:ss
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "用车开始时间不能为空。")
    @NotNull(message = "用车开始时间不能为空")
    private LocalDateTime limitStart;

    /**
     * 使用期限（止） YYYY-MM-DD hh:mm:ss
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "用车结束时间不能为空。")
    @NotNull(message = "用车结束时间不能为空")
    private LocalDateTime limitEnd;

    /**
     * 用车事由
     * 1	客运站为乘客组织的包车	2	旅游企业组织的旅游包车
     * 3	单位为单位人员组织包车	4	多个个人相约分担费用包车
     * 5	不收取乘客任何费用的包车
     */
    @ApiModelProperty(value = "用车是由不能为空。")
    @NotNull(message = "用车是由不能为空")
    private String matter;
    /**
     * 包车类别
     * 1	普通包车	2	旅游包车
     */
    @ApiModelProperty(value = "包车类别不能为空。")
    @NotNull(message = "包车类别不能为空")
    private String licType;
    /**
     * 包车类型标志牌
     * 00030008	省际包车客运
     * 00030006	县际包车客运
     * 00030005	县内包车客运
     * 00030009	主城区包车
     * 00030010	通勤车
     *
     */
    @ApiModelProperty(value = "包车类型不能为空。")
    @NotNull(message = "包车类型不能为空")
    private String licplaType;
    /**
     * 起始地省、市、区县编码用“-”连起来。例如：500000-500000-500112
     */
    @ApiModelProperty(value = "起始地省、市、区县编码用“-”连起来。")
    @NotNull(message = "起始地不能为空")
    private String departure;
    /**
     * 起始地（地址）
     * 对应表字段 start_place 起点
     */
    @ApiModelProperty(value = "起始地详细地址。")
    @NotNull(message = "起始地详细地址不能为空")
    private String startPlace;
    /**
     * 终审地省、市、区县编码用“-”连起来。例如：500000-500000-500112
     */
    @ApiModelProperty(value = "目的地省、市、区县（编码）用“-”连起来。")
    @NotNull(message = "目的地不能为空")
    private String theend;
    /**
     * 终到地（地址）
     */
    @ApiModelProperty(value = "目的地详细地址。")
    @NotNull(message = "目的地地址不能为空")
    private String endPlace;
    /**
     * 包车客运标志牌
     * 20000947	省际包车客运标志牌
     * 20000945	县际包车客运标志牌
     * 20000944	县内包车客运标志牌
     */
    @ApiModelProperty(value = "包车客运标志牌")
    @NotNull(message = "包车客运标志牌不能为空")
    private String cardType;
    /**
     * 主要途径地
     */
    @ApiModelProperty(value = "主要途径地。")
    @NotNull(message = "主要途径地不能为空")
    private String wayLine;
    /**
     * 主要停靠地
     */
    private String wayLineAddress;
    /**
     * 途径地行政区划编码，500000--500108、500000--500110
     */
    private String wayLineCode;
    /**
     * 是否往返载客
     */
    @ApiModelProperty(value = "isreturn 1：是 0：否")
    @NotNull(message = "是否往返载客不能为空")
    private Integer isreturn;

    /**
     * 总里程
     */
    @NotNull(message = "总里程不能为空")
    private Integer totalMileage;

    /**
     * 高速里程
     */
    @NotNull(message = "高速里程不能为空")
    private Integer highMileage;

    /**
     * 审核区县 起止地所在区县-区县id
     */
    @ApiModelProperty(value = "审核区县省、市、区县（编码）用“-”连起来。")
    @NotNull(message = "审核区县不能为空")
    private String auditCounties;
    /**
     * remarks
     */
    @ApiModelProperty(value = "备注")
    private String remarks;
}
